package cn.gxljc.technology.store_management.mapper;

import cn.gxljc.technology.store_management.entity.Account;
import org.apache.ibatis.annotations.*;

/*
 * @author LuoShengYing
 * @date 2021/05/22
 * AccountMapper用于管理Account(账户)表
 * */
@Mapper
public interface AccountMapper {

    // 通过accountID，查询数据库中对应的数据
    @Select("select `accountID`,`password` from `account` where `accountID` = #{accountID} ")
    Account selectByAccountID(@Param("accountID") long accountID);

    // 新增一条account数据，并将自增的accountID注入到传入的实体类对象中
    @Insert("insert `account` set `password` = #{password}")
    @Options(useGeneratedKeys = true, keyProperty = "accountID")
    void insertAccount(Account account);

    // 通过accountID，修改对应数据的password，并返回boolean类型数据显示成功与否
    @Update("update `account` set `password` = #{newPassword} where `accountID` = #{accountID}")
    boolean updatePassword(@Param("accountID") long accountID, @Param("newPassword") String newPassword);

    // 通过accountID，删除对应的数据，并返回boolean类型属性判断成功与否
    @Delete("delete from `account` where `accountID` = #{accountID}")
    boolean deleteAccount(@Param("accountID") long accountID);


}
